/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servidorRMI;

import interfaces.AddObservador;
import interfaces.ControlaJogo;
import java.rmi.RemoteException;
import java.util.Observable;
import model.T;

/**
 *
 * @author Lucas
 */
public class AddObservadorImp extends Observable implements AddObservador {

    //Singleton
    private static AddObservadorImp instancia;

    public AddObservadorImp() {
        instancia = this;
    }

    @Override
    public void adicionaObservador(ControlaJogo cj) throws RemoteException {
        ControlaObserver co = new ControlaObserver(cj);
        addObserver(co);
    }

    public static AddObservadorImp getInstancia() {
        return instancia;
    }

    public void notificaProximo() {
        setChanged();
        notifyObservers(T.VEZ);
    }

    public void notificar() {
        setChanged();
        notifyObservers();
    }

    public void notificarMensagem(String nomeJogador, String mensagem) {
        setChanged();
        notifyObservers(T.MENSAGEM
                + "-"
                + nomeJogador
                + "-"
                + mensagem);
    }

    public void notificarTroca(String jogadorDono, String jogadorOfertante,
        String campo, String valorOferta) {
        setChanged();
        notifyObservers(T.OFERTA
                + "-" + jogadorDono
                + "-" + jogadorOfertante
                + "-" + campo
                + "-" + valorOferta);
    }
    
    public void notificarCompra(String nomeJogador, String mensagem) {
        setChanged();
        notifyObservers(T.COMPRAR
                + "-"
                + nomeJogador
                + "-"
                + mensagem);
    }
}
